/*============================================================================
  File:      IDMAlgorithmMetadata.FactoryStubs.h
 
  Summary:   IDMAlgorithmMetadata declarations to paste into header file
			 for the factory class that creates instances of your algorithm

  Date:		 September 12, 2003
------------------------------------------------------------------------------
  This file is part of the Microsoft SQL Server Code Samples.
 
  Copyright (C) 2003 Microsoft Corporation.  All rights reserved.
 
This source code is intended only as a supplement to Microsoft
Development Tools and/or on-line documentation.  See these other
materials for detailed information regarding Microsoft code samples.
 
THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
============================================================================*/

	// IDMAlgorithmMetadata

    STDMETHOD (GetServiceType)( 
        /* [in]  */	IDMContextServices* in_pContext,
		/* [out] */ ULONG *out_pServiceTypeID);
    
    STDMETHOD (GetServiceName)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ DMString *io_pstrServiceName);
    
    STDMETHOD (GetDisplayName)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ DMString *io_pstrDisplayName);
    
    STDMETHOD (GetServiceGuid)( 
		/* [in]  */	IDMContextServices* in_pContext,    
		/* [out] */ GUID *out_pguidServiceGUID);
    
    STDMETHOD (GetDescription)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ DMString *io_pstrDescription);
    
    STDMETHOD (GetPredictionLimit)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ LONG *out_pPredictionLimit);
    
    STDMETHOD (GetSupDistributionFlags)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ ULONG **out_prgFlags,
        /* [out] */ ULONG *out_cFlags);
    
    STDMETHOD (GetSupInputContentTypes)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ ULONG **out_prgTypes,
        /* [out] */ ULONG *out_cTypes);
    
    STDMETHOD (GetSupPredictContentTypes)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ ULONG **out_prgTypes,
        /* [out] */ ULONG *out_cTypes);
    
    STDMETHOD (GetSupModelingFlags)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ DM_MODELING_FLAG **out_prgFlags,
        /* [out] */ ULONG *out_cFlags);
        
    STDMETHOD (GetModelingFlagName)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */  DM_MODELING_FLAG	in_Flag,
        /* [in] */ DMString *			io_pstrFlagName);
    
    STDMETHOD (GetTrainingComplexity)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ LONG *out_pTrainingComplexity);
    
    STDMETHOD (GetPredictionComplexity)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ LONG *out_pPredictionComplexity);
    
    STDMETHOD (GetExpectedQuality)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ LONG *out_pExpectedQuality);
    
    STDMETHOD (GetScaling)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ LONG *out_pScaling);
    
    STDMETHOD (GetAllowIncrementalInsert)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ BOOL *out_pfIncrementalInsert);
   
    STDMETHOD (GetAllowDuplicateKey)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ BOOL *out_pfDuplicateKey);
    
    STDMETHOD (GetControl)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ LONG *out_pControl);
    
    STDMETHOD (GetViewerType)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ DMString *io_pstrViewerType);
    
    STDMETHOD (GetSupportsDMDimensions)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ BOOL *out_pfSupportsDMDimensions);
    
    STDMETHOD (GetSupportsDrillthrough)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ BOOL *out_pfSupportsDrillthrough,
		/* [out] */ BOOL *out_pfMustIncludeChildren);

    STDMETHOD (GetSupportedFunctions)( 
        /* [in] */ IDMContextServices *in_pContext,
        /* [out] */ DM_SUPPORTED_FUNCTION **out_prgFuncs,
        /* [out] */ ULONG *out_cFuncs);

    
    STDMETHOD (GetNumParameters)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ ULONG *out_pcParameters);
    
    STDMETHOD (GetParameterName)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [out] */ DMString *io_pstrParameterName);
    
    STDMETHOD (GetParameterType)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [out] */ DMString *io_pstrParameterType);
    
    STDMETHOD (GetParameterIsRequired)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */  ULONG in_iParameter,
        /* [out] */ BOOL *out_pfIsRequired);

    STDMETHOD (GetParameterIsExposed)( 
    	/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [out] */ BOOL *out_pfIsExposed);
    
    STDMETHOD (GetParameterFlags)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [out] */ ULONG *out_pulParameterFlags);
    
    STDMETHOD (GetParameterDescription)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [in] */ ULONG in_LocaleID,
        /* [out] */ DMString *io_pstrDescription);
    
    STDMETHOD (GetParameterDefaultValue)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [out] */ DMString *io_pstrDefaultValue);
    
    STDMETHOD (GetParameterValueEnumeration)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [out] */ DMString *io_pstrValueEnumeration);
    
    STDMETHOD (ParseParameterValue)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ ULONG in_iParameter,
        /* [in] */ DMString *in_pstrParameterStrValue,
        /* [in] */ DMVariantPtr io_pParameterMappedValue);
    
    STDMETHOD (GetMarginalRequirements)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [out] */ DMMarginalRequirements *out_pReq);
    
	STDMETHOD (GetCaseIDModelled)( 
		/* [in] */ IDMContextServices *in_pContext,
		/* [out] */ BOOL *out_pfIsModelled);
    
	STDMETHOD (GetSupportsPMML)(
            /* [in] */ IDMContextServices *in_pContext,
            /* [out] */ BOOL *out_pfSupportsPMML);
    
    STDMETHOD (ValidateAttributeSet)( 
		/* [in]  */	IDMContextServices* in_pContext,
        /* [in] */ IDMAttributeSet *in_pAttributeSet);
        